package com.maxiee.heartbeat.ui.fragments;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.NestedScrollView;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.bumptech.glide.Glide;
import com.maxiee.heartbeat.R;
import com.maxiee.heartbeat.common.cloudview.CloudView;
import com.maxiee.heartbeat.database.utils.LabelUtils;
import com.maxiee.heartbeat.ui.LabelDetailActivity;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import butterknife.Bind;
import butterknife.ButterKnife;
/**
* Created by maxiee on 15-6-24.
*/
public class LabelCloudFragment extends Fragment{
@Bind(R.id.cloud_view) CloudView mCloudView;
@Bind(R.id.cloud_layout) NestedScrollView mCloudLayout;
@Bind(R.id.empty) RelativeLayout mEmptyLayout;
@Bind(R.id.image_empty) ImageView mImageEmpty;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_label_cloud, container, false);
ButterKnife.bind(this, v);
updateCloud();
return v;
}
public void updateCloud() {
Map<Long,Integer> allLabels = LabelUtils.getFreq(getActivity());
List<Pair<String, Integer>> labels = new LinkedList<>();
if (allLabels != null) {
ArrayList<Map.Entry<Long, Integer>> list = new ArrayList<>(allLabels.entrySet());
for (Map.Entry<Long, Integer> label: list) {
labels.add(new Pair<String, Integer>(
LabelUtils.getLabelByLabelId(getActivity(), label.getKey()).getLabel(),
label.getValue()));
}
}
if (!labels.isEmpty()) {
mCloudLayout.setVisibility(View.VISIBLE);
mEmptyLayout.setVisibility(View.GONE);
mCloudView.addLabels(labels);
mCloudView.setOnLabelClickListener(new CloudView.OnLabelClickListener() {
@Override
public void onClick(String label) {
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.setClass(getActivity(), LabelDetailActivity.class);
i.putExtra("tag_text", label);
startActivity(i);
}
});
} else {
mCloudLayout.setVisibility(View.GONE);
mEmptyLayout.setVisibility(View.VISIBLE);
Glide.with(getActivity()).load(R.drawable.empty_bg1).into(mImageEmpty);
}
}
@Override
public void onResume() {
super.onResume();
updateCloud();
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
}